Data processing method and apparatus

ABSTRACT

A data processing apparatus for processing input data and for outputting the processed data as output data achieves effective noise reduction. An input-reliability calculator calculates an input reliability indicating the reliability of the input data. An output-reliability calculator calculates an output reliability indicating the reliability of the output data. A correction-value calculator calculates a correction value for correcting the input reliability. A data processing unit processes the input data based on the input reliability corrected with the correction value and the output reliability, thereby obtaining the output data.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to data processing methods and apparatuses and, more particularly, to a data processing method and a data processing apparatus that allow noise contained in data to be effectively eliminated.

2. Description of the Related Art

Normally, transmitted or read data, such as image data or sound data,,contains time-varying noise. Conventionally, for eliminating noise contained in data, the whole input data may be averaged (hereinafter sometimes referred to as “overall average”), or local input data may be averaged, which is referred to as “moving average”.

However, the above-described conventional techniques of eliminating noise present the following problems.

The technique of calculating the overall average is effective if the degree of noise contained in the data, i.e., the signal-to-noise (S/N) ratio, is constant. However, when the S/N ratio varies, data having a poor S/N ratio adversely influences data having a good S/N ratio, thereby making it difficult to effectively remove noise.

According to the technique of calculating moving averages, the average of data which is temporally close to input data is obtained, and thus, the processing result is susceptible to variations in the S/N ratio. That is, with input data having a high S/N ratio, the processing result also has a high S/N ratio. With input data having a low S/N ratio, the processing result also has a low S/N ratio.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to solve the above-described problems.

In order to achieve the above object, according to one aspect of the present invention, there is provided a data processing apparatus for processing input data and for outputting the processed data as output data. The data processing apparatus includes an input-reliability calculator for calculating an input reliability indicating the reliability of the input data. An output-reliability calculator calculates an output reliability indicating the reliability of the output data. A correction-value calculator calculates a correction value for correcting the input reliability. A data processing unit processes the input data based on the input reliability corrected with the corrected value and based on the output reliability and outputs the output data.

According to another aspect of the present invention, there is provided a data processing method for processing input data and for outputting the processed data as output data. The data processing method includes: an input-reliability calculating step of calculating an input reliability indicating the reliability of the input data; an output-reliability calculating step of calculating an output reliability indicating the reliability of the output data; a correction-value calculating step of calculating a correction value for correcting the input reliability; and a data processing step of processing the input data based on the input reliability corrected with the corrected value and based on the output reliability, and of outputting the output data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating the configuration of a noise reduction (NR) processing circuit according to an embodiment of the present invention;

FIG. 2A illustrates the input data to be processed by the NR processing circuit shown in FIG. 1;

FIG. 2B illustrates the reliability of the input data shown in FIG. 2A;

FIG. 3 is a block diagram illustrating the configuration of an output-reliability calculator 13 shown in FIG. 1;

FIG. 4 illustrates the relationship between the provisional true value X′ and the true value X;

FIG. 5 is a block diagram illustrating the configuration of an input-reliability calculator 12 shown in FIG. 1; and

FIG. 6 is a flow chart illustrating the operation of the NR processing circuit shown in FIG. 1.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates the configuration of a noise reduction (NR) processing circuit according to an embodiment of the present invention. In this NR processing circuit, in response to input data containing noise, self-adaptive processing is performed on the received input data, thereby obtaining output data with effectively reduced noise.

For example, for simple representation, it is now assumed that input data having a constant true value and time-varying noise, such as the one shown in FIG. 2A, is averaged so as to eliminate the time-varying noise. To effectively eliminate noise, a smaller weight is applied to input data with a higher level of noise (i.e., poor S/N ratio), while a larger weight is applied to input data with a lower level of noise (i.e., good S/N ratio).

In the NR processing circuit shown in FIG. 1, the following processing is performed to effectively eliminate noise. To evaluate input data, the similarity of input data to a true value, i.e., the reliability of input data relative to the true value, as shown in FIG. 2B, is first determined by real-time learning, and the input data is then weighted according to the determined reliability. Then, the average of the weighted input data is obtained.

Accordingly, in the NR processing circuit shown in FIG. 1, the weighted mean of input data by using weights (weight coefficients) according to the reliability is determined and is output as output data. When the input data, the output data, and the reliability of the input data at time t are represented by x(t), y(t), and α_(x(t)), the output data y(t) is expressed according to the following equation. $\begin{matrix} {{y(t)} = \frac{\sum\limits_{i = 0}^{t}\quad {\alpha_{x{(i)}}{x(i)}}}{\sum\limits_{i = 0}^{t}\quad \alpha_{x{(i)}}}} & (1) \end{matrix}$

A larger weight is applied to the input data having a higher level of reliability α_(x(t)).

By using equation (1), the output data y(t−1) at time t−1 with respect to the current time t is determined by the following equation. $\begin{matrix} {{y\left( {t - 1} \right)} = \frac{\sum\limits_{i = 0}^{t - 1}\quad {\alpha_{x{(i)}}{x(i)}}}{\sum\limits_{i = 0}^{t - 1}\quad \alpha_{x{(i)}}}} & (2) \end{matrix}$

The same applies to the output data y(t). More specifically, to evaluate the output data y(t), the similarity of the output data to a true value, i.e., the reliability of the output data α_(y(t)) with respect to the true value, is used, and the reliability α_(y(t−1)) of the output data y(t−1) at time t−1 is defined by the following equation. $\begin{matrix} {\alpha_{y{({t - 1})}} = {\sum\limits_{i = 0}^{t - 1}\quad \alpha_{x{(i)}}}} & (3) \end{matrix}$

The output data y(t) and the reliability α_(y(t)) are expressed by the following equation obtained from equations (1) through (3). $\begin{matrix} \begin{matrix} {{y(t)} = \frac{\overset{\overset{\alpha_{y{({t - 1})}}{y{({t - 1})}}}{}}{\sum\limits_{i = 0}^{t - 1}\quad {\alpha_{x{(i)}}{x(i)}}} + {\alpha_{x{(t)}}{x(t)}}}{\underset{\underset{\alpha_{y{({t - 1})}}}{}}{\sum\limits_{i = 0}^{t - 1}\quad \alpha_{x{(i)}}} + \alpha_{x{(t)}}}} \\ {= \frac{{\alpha_{y{({t - 1})}}{y\left( {t - 1} \right)}} + {\alpha_{x{(t)}}{x(t)}}}{\alpha_{y{({t - 1})}} + \alpha_{x{(t)}}}} \\ {\alpha_{y{(t)}} = {\alpha_{Y{({t - 1})}} + \alpha_{x{(t)}}}} \end{matrix} & (4) \end{matrix}$

The weight used for obtaining the output data y(t) at time t is indicated by w(t) and is defined by the following equation.

W(t)=α_(y(t−1))/(α_(y(t−1))+α_(x(t)),  (5)

From equation (5), the following equation holds true.

1−w(t)=α_(x(t))/(α_(y(t−1))+α_(x(t)),  (6)

By using equations (5) and (6), the output data y(t) in equation (4) is expressed by the following weighted mean.

y(t)=w(t)y(t−1 )+(1−w(t))x(t)  (7)

The weight w(t) (and 1−w(t)) used in equation (7) can be determined by the reliability α_(y(t−1)) of the previous output data y(t−1) at time t−1 and the reliability α_(x(t)) of the current input data x(t) according to equation (5). The reliability α_(y(t)) of the current output data y(t) in equation (4) can also be determined by the reliability α_(y(t−1)) of the previous output data y(t−1) at time t−1 and the reliability α_(x(t)) of the current input data x(t).

As the reliability α_(x(t)) of the input data x(t) or the reliability α_(y(t)) of the output data y(t), the reciprocal of the variance σ_(x(t)) ² or σ_(y(t)) ² is used. That is, the reliability α_(x(t)) and the reliability α_(y(t)) are expressed by the following equations.

α_(x(t))=1/σ_(x(t)) ²

α_(y(t))=1/σ_(y(t)) ²  (8)

Then, the weight w(t) in equation (7) can be expressed by the following equation.

w(t)=σ_(x(t)) ²/(σ_(y(t−1)) ²+σ_(x(t)) ²)  (9)

In this case, 1−w(t) in equation (7) can be determined by the following equations.

 1−W(t)=σ_(y(t−1)) ²/(σ_(y(t−1)) ²+σ_(x(t)) ²)  (10)

σ_(y(t)) ² can be determined by the following equation.

σ_(y(t)) ² =w(t)²σ_(y(t−1)) ²+(1−w(t))²σ_(x(t)) ²  (11)

In the NR processing circuit shown in FIG. 1, the weight w(t) (and 1−w(t)) is determined according to equation (5) (and equation (6)) by performing real-time learning, and by using the resulting weight w(t), the weighted mean between the previous output data y(t−1) and the current input data x(t) is calculated according to equation (7). Thus, the input data x(t) is adaptively processed, thereby effectively eliminating noise contained in′the input data x(t). As a result, the S/N ratio of the output data y(t) obtained from the NR processing circuit is improved over time.

More specifically, in FIG. 1, input data is supplied to a latch circuit 11 ₁, for example, in time-series order. The latch circuit 11 ₁, latches (stores) the input data in synchronization with, for example, the timing at which the input data is supplied, and supplies it to a subsequent latch circuit 11 ₂ and an input-reliability calculator 12. Similarly, the latch circuit 11 ₂and a latch circuit 11 ₃ latch input data output from the latch circuits 11 ₁ and 11 ₂, respectively, and supply it to the subsequent latch circuit 11 ₃ and a latch circuit 11 ₄, respectively, and to the input-reliability calculator 12. The latch circuit 11 ₄ latches the input data output from the previous latch circuit 11 ₃ and supplies it to the input-reliability calculator 12.

Not only the input data latched in the latch circuits 11 ₁ through 11 ₄, but also the same input data as the data supplied to the latch circuit 11 ₁ are supplied to the input-reliability calculator 12. Accordingly, if the input data (given input data) x(t) is supplied to the latch circuit 11 ₁ and the input-reliability calculator 12, the input data x(t−1) through x(t−4) latched in the latch circuits 11 ₁ through 11 ₄ are also supplied to the input-reliability calculator 12. The input-reliability calculator 12 calculates, for example, the variance of the input data x(t) through x(t−4), and supplies the reciprocal of the variance to an output-reliability calculator 13 and a weight calculator 15 as the reliability α_(x(t)) of the input data x(t) (hereinafter sometimes referred to as the “input reliability”).

The output-reliability calculator 13 then calculates the reliability α_(y(t)) of the output data y(t) (hereinafter sometimes referred to as the “output reliability”) by using the input reliability α_(x(t)) output from the input-reliability calculator 12 and an output from a latch circuit 14 according to equation (4). The output-reliability calculator 13 outputs the calculated output reliability to the latch circuit 14.

The latch circuit 14 then latches the output reliability α_(y(t)) in synchronization with, for example, the input data x(t), and supplies it to the output-reliability calculator 13 and the weight calculator 15. Accordingly, the previous output reliability α_(y(t−1)) is supplied to the output-reliability calculator 13 and the weight calculator 15 from the latch circuit 14.

The weight calculator 15 determines the weight w(t) by using the input reliability α_(x(t)) from the input-reliability calculator 12 and the output reliability α_(y(t−1)) from the latch circuit 14 according to equation (5), and outputs the determined weight w(t) to a weighting unit 21 and an operation unit 22.

The weighting unit 21 multiplies an output of a latch circuit 25 with the weight w(t) output from the weighting calculator 15, and supplies the resulting value to an operation unit 24. The operation unit 22 subtracts the weight w(t) output from the weighting calculator 15 from one and supplies the resulting value 1−w(t) to a weighting unit 23. Not only an output of the operation unit 22, but also the input data x(t), is supplied to the weighting unit 23. The weighting unit 23 then multiplies the output of the operation unit 22 with the input data x(t) and supplies the resulting value to the operation unit 24. The operation unit 24 adds the output of the weighting unit 21 and the output of the weighting unit 23, and outputs the resulting value as the output data y(t). The output data y(t) is also supplied to the latch circuit 25. The latch circuit 25 latches the output data from the operation unit 24 in synchronization with, for example, the input data x(t), and supplies it to the weighting unit 21.

That is, the weighting unit 21, the operation unit 22, the weighting unit 23, the operation unit 24 and the latch circuit 25 calculate the weighted mean according to equation (7) and outputs it as the output data y(t).

FIG. 3 illustrates the configuration of the output-reliability calculator 13 shown in FIG. 1. The output-reliability calculator 13 is formed of an operation unit 41. Supplied to the operation unit 41 are the current input reliability α_(x(t)) from the input-reliability calculator 12 and the previous output reliability α_(y(t−1)) from the latch circuit 14. The operation unit 41 then adds the input reliability α_(x(t)) and the previous output reliability α_(y(t−1)) according to equation (4), and outputs the added value as the current output reliability α_(y(t)).

The operation of the NR processing circuit shown in FIG. 1 is as follows.

In the NR processing circuit, the variance σ_(x(t)) ² is determined by using five samples, i.e., the current input data x(t) and the preceding input data x(t−1) through x(t−4), and the reciprocal of the variance σx(t)² is further determined as the input reliability α_(x(t)).

The weight w(t) is then determined from the input reliability α_(x(t)) and the previous output reliability α_(y(t−1 )). Based on the determined weight w(t), the weighted mean between the input data x(t) and the previous output data y(t−1) is calculated, which is then output as the output data y(t).

That is, the input data x(t) is supplied to the latch circuit 11 ₁, the input-reliability calculator 12, and the weighting unit 23, and the input reliability α_(x(t)) is first determined in the input-reliability calculator 12.

More specifically, the latch circuit 11 ₁ latches the supplied input data in synchronization with the timing at which the input data is supplied, and supplies the latched data to the subsequent latch circuit 11 ₂ and to the input-reliability calculator 12. Likewise, the latch circuits 11 ₂ and 11 ₃ latch the input data output from the previous latch circuits 11 ₁ and 11 ₂ respectively,, and supply it to the subsequent latch circuits 11 ₃ and 11 ₄, respectively, and to the input-reliability calculator 12. The latch circuit 11 ₄ latches the input data output from the previous latch circuit 11 ₃ and supplies it to the input-reliability calculator 12. Accordingly, the input data x(t−1) through x(t−4) output from the latch circuits 11 ₁ through 11 ₄, respectively, as well as the input data x(t), are supplied to the input-reliability calculator 12. As stated above, the input-reliability calculator 12 determines the input reliability α_(x(t)) by using the input data x(t) through x(t−4), and supplies it to the output-reliability calculator 13 and the weight calculator 15.

Simultaneously with the supply of the input reliability α_(x(t)) from the input-reliability calculator 12 to the weight calculator 15, the output reliability α_(y(t−1)) output from the output-reliability calculator 13 at time t−1 is latched in the latch circuit 14. Thus, the weight calculator 15 calculates the weight w(t) by using the input reliability α_(x(t)) from the input-reliability calculator 12 and the output reliability α_(y(t−1)) latched in the latch circuit 14 according to equation (5). The weight w(t) is then supplied to the weighting unit 21 and the operation unit 22.

Subsequently, by using the weight w(t) output from the weight calculator 15, the weighting unit 21, the operation unit 22, the weighting unit 23, the operation unit 24 and the latch circuit 25 calculate the weighted mean between the input data x(t) and the previous output data y(t−1) according to equation (7).

More specifically, the weighting unit 21 multiples the output of the latch circuit 25 with the weight w(t) output from the weight calculator 15, and supplies the resulting value to the operation unit 24. In this case, at the timing at which the weight calculator 15 outputs the weight w(t), the latch circuit 25 latches the previous output data y(t−1) output from the operation unit 24 at time t−1. Accordingly, the weighting unit 21 calculates the product w(t)y(t−1) of the output data y(t−1) and the weight w(t), and supplies it to the operation unit 24.

Meanwhile, the operation unit 22 subtracts the weight w(t) output from the weight calculator 15 from one, and supplies the subtracted value 1−w(t) to the weighting unit 23. The weighting unit 23 then multiplies the output 1−w(t) from the operation unit 22 with the input data x(t), and supplies the resulting value (1−w(t))x(t) to the operation unit 24.

The operation unit 24 adds the output w(t)y(t−1) from the weighting unit 21 and the output (1−w(t))x(t) from the weighting unit 23, namely, the operation unit 24 calculates the weighted mean between the input data x(t) and the previous output data y(t−1) by using the weight w(t) output from the weight calculator 15 according to equation (7).

The calculated weighted mean is then output as the output data y(t). The output data y(t) is also supplied to and latched in the latch circuit 25.

The output reliability is updated in the output-reliability calculator 13. More specifically, the output-reliability calculator 13 adds the input reliability α_(x(t)) calculated by the input-reliability calculator 12 and the previous output reliability α_(y(t−1)) latched in the latch circuit 14 according to equation (4) so as to determine the current output reliability α_(y(t)), which is then output to the latch circuit 14. Thereafter, processing similar to the above-described processing is repeatedly performed on the subsequent input data.

As discussed above, the reliability (input reliability) α_(x(t)) of the current input data x(t) is first determined, and the previous output reliability α_(y(t−1)) is added thereto, thereby calculating the weight w(t). By using the weight w(t), the weighted mean between the current input data x(t) and the previous output data y(t−1) is calculated and is output as the output data y(t) in response to the input data x(t). Then, the reliability (output reliability) at) of the output data y(t) is determined by adding the current input reliability α_(x(t)) and the previous output reliability α_(y(t−1)), thereby processing the subsequent input data x(t+1). Consequently, the application of the weight w(t) is learned so that only a small weight w(t) is applied to data components having a high level of noise, while a sufficiently large weight w(t) is applied to data components having a low level of noise, namely, the weight w(t) is adaptively determined in response to the input data. As a result, the output data continues to be improved with the progress of learning of the weight w(t), thereby obtaining output data with effectively reduced noise.

In the foregoing embodiment, the variance σ_(x(t)) ² is calculated by using the five samples of input data x(t) through x(t−4). Accordingly, the reciprocal of the variance σ_(x(t)) ², i.e., the input reliability α_(x(t)), cannot be determined until the time for processing the five samples elapses from the start of the receipt of the input data. Alternatively, neither the input reliability nor the output reliability may be calculated until the time for processing the five samples elapses, and the simple average of the data which have been input so far may be determined and output as the output data. The method for processing the data immediately after the receipt of the input data is not restricted to this modification.

In the aforementioned embodiment, the variance σ_(x(t)) ² of the input data x(t) through x(t−4) is calculated, and the reciprocal of the variance σ_(x(t)) ² is determined to be the input reliability α_(x(t)) of the input data x(t). However, to determine the input reliability α_(x(t)) representing the reliability of the input data with respect to the true value, a value reflecting an error of the input data x(t) with respect to the true value X, such as the one expressed by the following equation (12), may be ideally used. In equation (12), the reciprocal of the square of the error of the input data x(t) with respect to the true value X is set to be the input reliability α_(x(t)), which is equal to the reciprocal of the square of noise power contained in the input data x(t).

α_(x(t))=1/(x(t)−X)²  (12)

However, since the true value X of the input data x(t) is unknown, it is necessary to determine the input reliability α_(x(t)) without using the true value X. Accordingly, it is now assumed that a provisional true value X′ is set, and the reciprocal of the square of the error of the input data x(t) with respect to the provisional true value X′ is used as the input reliability α_(x(t)). Then, the input reliability α_(x(t)) is expressed by the following equation.

α_(x(t))=1/Δ_(x(t)) ²=1/(x(t)−X′)²  (13)

Since Δ_(x(t)) ² in equation (13) is the square of the error (x(t)−X′)² of the input data x(t) with respect to the provisional true value X′, the level of noise contained in the input data x(t) can be approximately estimated. However, Δ_(x(t)) ² does not contain an error of the provisional true value X′ with respect to the true value X, and thus, it is basically different from the square of the error (x(t)−X)² of the input data x(t) with respect to the true value X, as illustrated in FIG. 4.

Thus, the reliability of the square of the error Δ_(x(t)) ² with respect to the square of the error (x(t)−X)², i.e., the provisional-true-value reliability representing the reliability of the provisional true value X′ with respect to the true value X is introduced as a correction term (correction value) σ_(X′) ² for correcting the input reliability α_(x(t)). By using this correction term, the input reliability α_(x(t)) represented by the reciprocal of the square of the error Δ_(x(t)) ² of the input data x(t) with respect to the provisional input value X′ is corrected, thereby obtaining a higher-precision input reliability α_(x(t)) (which indicates a more precise reliability of the input data x(t) with respect to the true value X).

More specifically, as the provisional true value X′, the average value (moving average) of N number of input data x(t) through x(t−(N−1)) including the input data x(t), as expressed by the following equation (14), is used. $\begin{matrix} {X^{\prime} = {\overset{\_}{x} = \frac{\sum\limits_{n = 0}^{N - 1}\quad {x\left( {t - n} \right)}}{N}}} & (14) \end{matrix}$

In equation (14), x with a bar ({overscore (- )}) indicates the average of the input data x(t) through x(t−(N−1)), which is hereinafter referred to as “{overscore (x)}”.

In this case, as the correction term σ_(X′) ², the average σ{overscore (x)}² of the variance of N number of input data x(t) through x(t−(N−1)) including the input data x(t), as expressed by the following equation, can be used. $\begin{matrix} {\sigma_{x^{\prime}}^{2} = {\sigma_{\overset{\_}{x}}^{2} = \frac{\sum\limits_{n = 0}^{N - 1}\quad \left( {{x\left( {t - n} \right)} - \overset{\_}{x}} \right)^{2}}{N\left( {N - 1} \right)}}} & (15) \end{matrix}$

The value obtained by dividing the numerator of the right side in equation (15) by N−1 is equal to the variance of the input data x(t) through x(t−(N−1)), which is further divided by N in equation (15), thereby determining the average σ{overscore (x)}² of the variance of the input data x(t) through x(t−(N−1)). Statistically, σ{overscore (x)}² calculated by equation (15) is referred to as the “variance of the average”. Practically, however, since the variance is divided by N, σ{overscore (x)}² is more easily understood as “average of the variance”, which will thus be used hereinafter.

In this case, the input reliability α_(x(t)) can be corrected by the following equation.

α_(x(t))=1/(Δ_(x(t)) ²+σ_(X′) ²)  (16)

In equation (16), the square of the error Δ_(x(t)) ² (the reciprocal of the pre-corrected input reliability) of the input data x(t) with respect to the provisional true value X′ is corrected by the correction term σ_(X′) ², and the reciprocal of the corrected value is determined to be the corrected input reliability α_(x(t)). That is, the reciprocal of the value obtained by adding the correction term σ_(X′) ² to the square of the error Δ_(x(t)) ² is determined to be the corrected input reliability α_(x(t)).

Statistically, the square of the error Δ_(x(t)) ² of the input data x(t) with respect to the provisional true value X′ is estimated to be smaller than the square of the error (x(t)−X)² of the input data x(t) with respect to the true value X. Thus, as indicated by equation (16), the correction term σ_(X′) ² is added to the square of the error Δ_(x(t)) ², and the reciprocal of the added value is set to be the input reliability α_(x(t)). Thus, the resulting input reliability α_(x(t)) indicates a more precise reliability of the input data x(t) with respect to the true value X.

FIG. 5 illustrates the configuration of the input-reliability calculator 12 when the corrected input reliability α_(x(t)) is determined in the above manner.

In this embodiment, as stated above, the previous five input data x(t) through x(t−4) including the input data x(t) are supplied to the input-reliability calculator 12. Accordingly, the number five is substituted for N in equations (14) and (15), thereby determining the input reliability α_(x(t)).

Referring to FIG. 5, the input data x(t) through x(t−4) are supplied to an input-reliability calculating circuit 31 and a correction-term calculating circuit 32. The input-reliability calculating circuit 31 calculates the average value {overscore (x)} of the five samples of input data x(t) through x(t−4) according to equation (14). The input-reliability calculating circuit 31 determines the average value {overscore (x)} to be the provisional true value X′, and further calculates the input reliability α_(x(t)) according to equation (13). The input reliability α_(x(t)) is supplied to a correction circuit 33. The average value {overscore (x)}of the input data x(t) through x(t−4) is also supplied to the correction-term calculating circuit 32 from the input-reliability calculating circuit 31.

The correction-term calculating circuit 32 calculates the average value σ{overscore (x)}² of the variance of the input data x(t) through x(t−(N−1)) by using the input data x(t) through x(t−4) and the average value {overscore (x)} output from the input-reliability calculating circuit 31, and outputs the average value σ{overscore (x)}² to the correction circuit 33 as the correction term σ_(X′) ².

The correction circuit 33 then corrects the input reliability α_(x(t)) output from the input-reliability calculating circuit 31 with the correction term σ_(X′) ² output from the correction-term calculating circuit 32, and outputs the corrected value as the final input reliability, (corrected input reliability) α_(x(t)). That is, the correction circuit 33 adds the correction term σ_(X′) ² to the square of the error Δ_(x(t)) ², i.e., to the reciprocal of the input reliability α_(x(t)), and outputs the reciprocal of the added value as the final input reliability α_(x(t)) according to equation (16).

A description is now given, with reference to the flow chart of FIG. 6, of the operation of the NR processing circuit shown in FIG. 1 when the input-reliability calculator 12 is configured as shown in FIG. 5.

In step S11, the input data x(t) is supplied to the latch circuit 11 ₁, the input-reliability calculator 12, and the weighting unit 23. Then, in step S12, the input reliability α_(x(t)) is calculated in the input-reliability calculator 12.

More specifically, as discussed above, simultaneously with the supply of the input data x(t), the input data x(t−1) through x(t−4) are supplied to the input-reliability calculator 12 from the latch circuits 11 ₁ through 11 ₄, respectively. In the input-reliability calculator 12, the average value {overscore (x)} of the five samples of input data x(t) through x(t−4) is determined to be the provisional true value X′ according to equation (14), and the input reliability α_(x(t)) is determined according to equation (13).

Thereafter, in step S13, the input-reliability calculator 12 determines the average value σ{overscore (x)}² of the variance to be the correction term σ_(X′) ² from the input data x(t) through x(t−4) and the average value {overscore (x)} according to equation (15). In step S13, the input reliability α_(x(t)) calculated according to equation (13) is corrected with the correction term σ_(X′) ² according to equation (16), and the corrected input reliability α_(x(t)) is supplied to the output-reliability calculator 13 and the weight calculator 15.

As stated above, at the timing at which the input reliability α_(x(t)) is supplied to the weight calculator 15 from the input-reliability calculator 12, the previous output reliability α_(y(t−1)) output from the output-reliability calculator 13 at time t−1 is latched in the latch circuit 14. Thus, in step S14, the weight calculator 15 calculates the weight (t) from the input reliability α_(x(t)) output from the input-reliability calculator 12 and the output reliability α_(y(t−1)) latched in the latch circuit 14 according to equation (5). The weight w(t) is then supplied to the weighting unit 21 and the operation unit 22.

In step S15, as discussed above, by using the weight w(t) output from the weight calculator 15, the weighting unit 21, the operation unit 22, the weighting unit 23, the operation unit 24 and the latch circuit 25 calculate the weighted mean between the input data x(t) through the previous output data y(t−1) according to equation (7).

In step S16, the calculated weighted mean is output as the output data y(t) and is further supplied to and latched in the latch circuit 25.

It is then determined in step S17 whether all the input data have been processed. If the outcome of step S17 is no, the process proceeds to step S18 in which the output reliability is updated in the output-reliability calculator 13. More specifically, the output-reliability calculator 13 adds the corrected input reliability α_(x(t)) output from the input-reliability calculator 12 in step S13 to the previous output reliability α_(y(t−1)) latched in the latch circuit 14 according to equation (4) so as to determine the current output reliability α_(y(t)), which is then output to the latch circuit 14. The process then returns to step S11 in which the corresponding processing is performed on the subsequent input data.

If it is found in step S17 that there is no data to be processed, the processing is completed.

According to the aforementioned description, the reliability (input reliability) α_(x(t)) of the current input data x(t) is determined, and the correction term σ_(X′) ² for correcting the input reliability α_(x(t)) is also determined. By using the correction term σ_(X′) ², the input reliability α_(x(t)) is corrected. It is thus possible to obtain the input reliability α_(x(t)) indicating a more precise reliability of the input data x(t) with respect to the true value X, thereby achieving a more effective noise reduction.

The present invention may be used for eliminating noise from image data, sound data, and other types of data.

In the foregoing embodiment, the present invention is described with a view to achieving noise reduction. In essence, the weight w(t) is learned in real time so that the output data can be improved over time by adaptively processing the input data, and by using the resulting weight w(t), the processing is suitably performed, namely, the input data is self-adaptively processed. Accordingly, by using the present invention, waveform shaping of the input data may be performed.

In the aforementioned embodiment, the output data y(t) is determined by multiplying the output data y(t−1) with the weight w(t) and also multiplying the input data x(t) with the weight 1−w(t) in equation (7). However, only one of the output data y(t−1) and the input data x(t) may be multiplied with the weight w(t) so as to determine the output data y(t).

Although in the foregoing embodiment the corrected input reliability α_(x(t)) is determined according to equation (16), another technique may be employed for obtaining the input reliability α_(x(t)).

As the provisional true value X′ of the input data x(t), the average value of the preceding input data including the current input data x(t) is used. Alternatively, the previous output data y(t−1) may be used as the provisional true value X′, in which case, the input reliability α_(x(t)) may be corrected with the output reliability α_(y(t−1)) of the previous output data y(t−1), which serves as the correction term.

In the above-described embodiment, the reciprocal of the square of the error of the input data x(t) with respect to the provisional true value X′ is set to be the input reliability α_(x(t)) to be corrected. However, another value may be used for the input reliability α_(x(t)) to be corrected.

As is seen from the foregoing description, according to the data processing method and apparatus of the present invention, the input reliability indicating the reliability of input data and the output reliability indicating the reliability of output data are calculated, thereby determining a predetermined correction value for correcting the input reliability. The input reliability is then corrected with the correction value, and the input data is processed based on the corrected input reliability and the output reliability, thereby obtaining the output data. It is thus possible to obtain an input reliability representing a more precise reliability of the input data with respect to the true value. By using this higher-precision input reliability, more effective noise reduction can be achieved. 

What is claimed is:
 1. A data processing apparatus for processing input data and for outputting the processed data as output data, comprising: input-reliability calculating means for calculating an input reliability indicating the reliability of the input data; output-reliability calculating means for calculating an output reliability indicating the reliability of the output data; correction-value calculating means for calculating a correction value for correcting the input reliability; and data processing means for processing the input data based on the input reliability corrected with the corrected value and-based on the output reliability, and for outputting the output data.
 2. A data processing apparatus according to claim 1, further comprising weight-coefficient calculating means for calculating a weight coefficient based on the corrected input reliability and the output reliability, wherein said data processing means applies weights to given input data and previously obtained output data based on the weight coefficient calculated by said weight-coefficient calculating means, and adds the weighted given input data and the weighted previously obtained output data, thereby obtaining output data in response to the input data.
 3. A data processing apparatus according to claim 1, wherein said input-reliability calculating means calculates an average value of the input data as a provisional true value of given input data, and determines the input reliability according to the provisional true value.
 4. A data processing apparatus according to claim 3, wherein said correction-value calculating means calculates, as the correction value, provisional-true-value reliability representing the reliability of the provisional true value of the input data.
 5. A data processing apparatus according to claim 1, wherein said correction-value calculating means calculates an average value of the variance of the input data as the correction value.
 6. A data processing apparatus according to claim 5, wherein said input-reliability calculating means determines the average value of the input data to be the provisional true value of the given input data, and calculates the reciprocal of the square of an error of the input data with respect to the provisional true value as the input reliability, and wherein said data processing means adds the average value of the variance of the input data to the reciprocal of the input reliability, and determines the reciprocal of the added value to be the corrected input reliability.
 7. A data processing method for processing input data and for outputting the processed data as output data, comprising: an input-reliability calculating step of calculating an input reliability indicating the reliability of the input data; an output-reliability calculating step of calculating an output reliability indicating the reliability of the output data; a correction-value calculating step of calculating a correction value for correcting the input reliability; and a data processing step of processing the input data based on the input reliability corrected with the corrected value and based on the output reliability, and of outputting the output data.
 8. A data processing method according to claim 7, further comprising a weight-coefficient calculating step of calculating a weight coefficient based on the corrected input reliability and the output reliability, wherein in said data processing step, weights are applied to given input data and previously obtained output data based on the weight coefficient calculated in said weight-coefficient calculating step, and the weighted given input data and the weighted previously obtained output data are added, thereby obtaining output data in response to the input data.
 9. A data processing method according to claim 7, wherein in said input-reliability calculating step, an average value of the input data is calculated as a provisional true value of given input data, and the input reliability is determined according to the provisional true value.
 10. A data processing method according to claim 9, wherein in said correction-value calculating step, provisional-true-value reliability representing the reliability of the provisional true value of the input data is calculated as the correction value.
 11. A data processing method according to claim 7, wherein in said correction-value calculating step, an average value of the variance of the input data is calculated as the correction value.
 12. A data processing method according to claim 11, wherein, in said input-reliability calculating step, the average value of the input data is determined to be the provisional true value of the given input data, and the reciprocal of the square of an error of the input data with respect to the provisional true value is calculated as the input reliability, and wherein, in said data processing step, the average value of the variance of the input data is added to the reciprocal of the input reliability, and the reciprocal of the added value is determined to be the corrected input reliability. 